import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;

public class hhh {
    public static void main(String[] args) {
        String one = "()[]{}";
        System.out.println(isValid("{{([])}}"));
    }

    public static boolean isValid(String s) {
        boolean flag = true;
        for (int i = 0; i < s.length(); i++) {//{} [] ()
            flag = true;
            if (s.charAt(i) == '{' && s.charAt(i + 1) == '}') {
                flag = false;
                i++;
            }
            if (s.charAt(i) == '[' && s.charAt(i + 1) == ']') {
                flag = false;
                i++;
            }
            if (s.charAt(i) == '(' && s.charAt(i + 1) == ')') {
                flag = false;
                i++;
            }
            if (flag) {
                return false;
            }
        }

        char[] left = new char[s.length() / 2];
        char[] right = new char[s.length() / 2];
        int l = 0;
        int r = 0;
        boolean flag2 = false;
        for (int i = 0; i < s.length(); i++) {//{{([])}}
            if (s.charAt(i) == '{' || s.charAt(i) == '[' || s.charAt(i) == '(') {
                left[l++] = s.charAt(i);
            }
            if (s.charAt(i) == '}' || s.charAt(i) == ']' || s.charAt(i) == ')') {
                right[r++] = s.charAt(i);
            }
        }
        int ed = left.length - 1;
        for (int i = 0; i < s.length() / 2; i++) {//right
            if (left[ed] == '{' && right[i] == ']' || left[ed] == '{' && right[i] == ')') {
                return false;
            }
            if (left[ed] == '[' && right[i] == '}' || left[ed] == '[' && right[i] == ')') {
                return false;
            }
            if (left[ed] == '(' && right[i] == ']' || left[ed] == '(' && right[i] == '}') {
                return false;
            }
            ed--;
        }
        flag2 = true;
        if (flag||flag2) {
            return true;
        }
    }

    public static void mmain(String[] args) {
        ArrayList<List<Integer>> h = new ArrayList<>();
        h.add(new ArrayList<>());
        h.add(new ArrayList<>());
        h.add(new ArrayList<>());
        h.get(0).add(1);
        h.get(1).add(1);
        h.get(1).add(1);
        System.out.println(h);

    }
    //自带顺序表
    public static void main1(String[] args) {
        List<Integer> h = new ArrayList<>();
        List<Integer> h2 = new ArrayList<>();
        h.add(2);
        h2.add(1);
        h.add(3);
        System.out.println(h);
        h.addAll(2, h2);
        System.out.println(h);
    }
}
